package co.edu.uniandes.services;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import co.edu.uniandes.dto.TipoEvento;
import co.edu.uniandes.services.constantes.ConsultaConstantes;

/**
 * 
 * @author Rafael Guillermo Blanco Banquez <rafaelg.blancob@gmail.com>
 * 
 */
public class ServicioTipoEvento extends UnicastRemoteObject implements
		IServicioTipoEvento {

	/**
	 * Contructor
	 * 
	 * @throws RemoteException
	 */
	public ServicioTipoEvento() throws RemoteException {
		super();
	}

	@Override
	public List<TipoEvento> consultarTipoEvento() throws Exception {

		Connection con = ConexionBD.getInstance().getConection();
		PreparedStatement ps = null;
		ResultSet rs = null;

		List<TipoEvento> resultado = new ArrayList<TipoEvento>();

		try {
			ps = con.prepareStatement(ConsultaConstantes.CONSULTA_TIPOEVENTO);
			rs = ps.executeQuery();
			int id;
			String tipo;
			TipoEvento tipoEvento;
			while (rs.next()) {
				tipoEvento = new TipoEvento();
				id = rs.getInt("id");
				tipo = rs.getString("tipo");
				tipoEvento.setId(id);
				tipoEvento.setNombre(tipo);
				resultado.add(tipoEvento);
			}
		} catch (Exception e) {
			throw e;
		} finally {
			if (rs != null && !rs.isClosed()) {
				rs.close();
			}
			if (ps != null && !ps.isClosed()) {
				ps.close();
			}

		}
		return resultado;
	}

	@Override
	public void insertar(TipoEvento objeto) throws Exception, RemoteException {

	}

	@Override
	public List<TipoEvento> consultar() throws Exception, RemoteException {
		return null;
	}

	@Override
	public void eliminar(Integer id) throws Exception, RemoteException {
	}

}
